﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Entidades;
using LogicaNegocio;

namespace PresentacionEscritorio
{
    public partial class frmConsultarEspecialidad : Form, IOpcion
    {
        private List<Especialidad> listEsp;
        private frmRegistrarEspecialidad formEspecialidad;
        private string opElegida;

        public frmConsultarEspecialidad()
        {
            InitializeComponent();
        }

        private void btnCancelarEspecialidad_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }

        private void frmConsultarEspecialidad_Load(object sender, EventArgs e)
        {
            cargarGrillaCompleta();
            switch (opElegida)
            {
                case Opcion.OpConsultar:
                    this.Text = "Consultar Especialidad - TodoSalud";
                    lblTitulo.Text = "Consultar especialidad";
                    break;
                case Opcion.OpModificar:
                    this.Text = "Modificar Especialidad - TodoSalud";
                    lblTitulo.Text = "Modificar especialidad";
                    break;
                case Opcion.OpDarBaja:
                    this.Text = "Dar baja a Especialidad - TodoSalud";
                    lblTitulo.Text = "Dar Baja a especialidad";
                    break;
            }
        }

        private void cargarGrillaCompleta()
        {
            listEsp = GestorEspecialidades.obtenerTodasEspecialidades();
            //dgvEspecialidades.DataSource = listEsp;

            int i = 0;
            foreach (Especialidad item in listEsp)
            {
                i = dgvEspecialidades.Rows.Add();
                dgvEspecialidades.Rows[i].Cells["CodEspecialidad"].Value = item.CodEspecialidad;
                dgvEspecialidades.Rows[i].Cells["Nombre"].Value = item.Nombre;
                if (string.IsNullOrEmpty(item.Descripcion))
                    dgvEspecialidades.Rows[i].Cells["Descripcion"].Value = "S/D";
                else
                    dgvEspecialidades.Rows[i].Cells["Descripcion"].Value = item.Descripcion;
                dgvEspecialidades.Rows[i].Cells["Modalidad"].Value = item.ModalidadEspecialidad.TipoModalidad.Nombre;
                dgvEspecialidades.Rows[i].Cells["Precio"].Value = item.PrecioLista;
                dgvEspecialidades.Rows[i].Cells["FechaAlta"].Value = item.FechaAlta.ToShortDateString();
            }

            //DataGridViewLinkColumn select = new DataGridViewLinkColumn();
            //select.Name = "Seleccionar";
            //select.Text = "Seleccionar esp";
            //select.UseColumnTextForLinkValue = true;
            //dgvEspecialidades.Columns.Add(select);
        }

        private void dgvEspecialidades_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (dgvEspecialidades.CurrentCell.OwningColumn == dgvEspecialidades.Columns["Seleccionar"])
            {
                int codEsp = Convert.ToInt32(dgvEspecialidades.CurrentRow.Cells["CodEspecialidad"].Value);
                Especialidad esp = GestorEspecialidades.obtenerEspecialidad(codEsp);


                //opcion Consultar
                formEspecialidad = new frmRegistrarEspecialidad();
                formEspecialidad.setOpcion(opElegida);
                formEspecialidad.EspObtenida = esp;
                formEspecialidad.Show();
            }
        }

        public void setOpcion(string op)
        {
            opElegida = op;
        }

        public string getOpcion()
        {
            return opElegida;
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            string nombreEsp = null;
            DateTime? fechaAltaDesde = null;
            if (!string.IsNullOrEmpty(txtNombreEspecialidad.Text))
                nombreEsp = txtNombreEspecialidad.Text;
            if(!string.IsNullOrEmpty(txtFechaDesde.Text))
                fechaAltaDesde = DateTime.Parse(txtFechaDesde.Text);

            listEsp = GestorEspecialidades.BuscarEspecialidades(nombreEsp, fechaAltaDesde);
                
            //cargamos la grilla
            dgvEspecialidades.Rows.Clear();
            int i = 0;
            foreach (Especialidad item in listEsp)
            {
                i = dgvEspecialidades.Rows.Add();
                dgvEspecialidades.Rows[i].Cells["CodEspecialidad"].Value = item.CodEspecialidad;
                dgvEspecialidades.Rows[i].Cells["Nombre"].Value = item.Nombre;
                if (string.IsNullOrEmpty(item.Descripcion))
                    dgvEspecialidades.Rows[i].Cells["Descripcion"].Value = "S/D";
                else
                    dgvEspecialidades.Rows[i].Cells["Descripcion"].Value = item.Descripcion;
                dgvEspecialidades.Rows[i].Cells["Modalidad"].Value = item.ModalidadEspecialidad.TipoModalidad.Nombre;
                dgvEspecialidades.Rows[i].Cells["Precio"].Value = item.PrecioLista;
                dgvEspecialidades.Rows[i].Cells["FechaAlta"].Value = item.FechaAlta.ToShortDateString();
            }
            
        }
    }
}
